package la.iok.hzsvn.lewin.movie.core.model;

import la.iok.hzsvn.share.collection.IdAble;

/**
 * 简单的组织信息。不包括关联表的信息，比如地址信息
 */
public class SimpleOrgUnitVo implements IdAble<Long> {
    /**
     * 正常状态
     */
    public static final int STATUS_NORMAL = 0;
    /**
     * 已经下线
     */
    public static final int STATUS_OFFLINE = 1;
    /**
     * 唯一标识
     */
    private Long id;
    /**
     * 类型,1：店铺；2：加盟商；3：部门
     */
    private int type;
    /**
     * 名称
     */
    private String name;
    /**
     * 状态位。0表示正常状态,1表示已经下线
     */
    private Integer status;
    /**
     * PAD端是否隐藏云端剧本列表，1：隐藏，0:不隐藏。默认为0
     */
    private Integer hideCloudMovie;

    @Override
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getHideCloudMovie() {
        return hideCloudMovie;
    }

    public void setHideCloudMovie(Integer hideCloudMovie) {
        this.hideCloudMovie = hideCloudMovie;
    }

    /**
     * 判断是否已经下线
     * @return 已经下线返回true否则false
     */
    public boolean offlineStatus(){
        return status != null && status == STATUS_OFFLINE;
    }

    /**
     * 判断是否是正常状态
     * @return true表示正常状态,否则false
     */
    public boolean normalStatus(){
        return status != null && status == STATUS_NORMAL;
    }

    /**
     * 判断组织是否是店铺类型。
     * @return 是店铺返回true,否则false
     * @see SimpleOrgUnitVo#getType()
     */
    public boolean shopType(){
        return OrgUnitType.SHOP.getCode() == type;
    }

    /**
     * 判断组织是否是加盟商类型
     * @return 是加盟商返回true,否则false
     * @see SimpleOrgUnitVo#getType()
     */
    public boolean franchiseeType(){
        return OrgUnitType.FRANCHISEE.getCode() == type;
    }
}
